/**
 * 我的评论页面JavaScript
 */

(function($) {
    var commentsList = [];
    
    /**
     * 页面初始化
     */
    appcan.ready(function() {
        
        // 返回按钮
        appcan.button("#nav-left", "btn-act", function() {
            appcan.window.close(-1);
        });
        
        // 加载评论列表
        loadComments();
    });
    
    /**
     * 加载评论列表
     */
    function loadComments() {
        // 从本地存储获取评论列表
        var commentsData = appcan.locStorage.getVal('userComments');
        
        if (commentsData) {
            try {
                commentsList = JSON.parse(commentsData);
            } catch (e) {
                commentsList = [];
            }
        }
        
        // 更新评论数量
        $('#commentCount').text(commentsList.length);
        
        // 渲染评论列表
        renderComments();
    }
    
    /**
     * 渲染评论列表
     */
    function renderComments() {
        var $commentsList = $('#commentsList');
        var $emptyState = $('#emptyState');
        
        if (commentsList.length === 0) {
            // 显示空状态
            $emptyState.show();
            return;
        }
        
        // 隐藏空状态
        $emptyState.hide();
        
        // 按时间排序（最新的在前）
        commentsList.sort(function(a, b) {
            return new Date(b.time) - new Date(a.time);
        });
        
        // 生成评论项HTML
        var html = '';
        commentsList.forEach(function(item, index) {
            html += generateCommentItemHTML(item, index);
        });
        
        $commentsList.html(html);
        
        // 绑定点击事件
        bindCommentEvents();
    }
    
    /**
     * 生成评论项HTML
     */
    function generateCommentItemHTML(item, index) {
        var commentDate = new Date(item.time).toLocaleString();
        var timeAgo = getTimeAgo(new Date(item.time));
        
        return `
            <div class="comment-item" data-index="${index}">
                <div class="comment-content">
                    <div class="comment-header">
                        <div class="comment-news-title">${item.newsTitle || '未知文章'}</div>
                        <div class="comment-time">
                            <i class="fa fa-clock-o"></i>
                            ${timeAgo}
                        </div>
                    </div>
                    
                    <div class="comment-text comment-bubble">
                        ${item.content}
                    </div>
                    
                    <div class="comment-meta">
                        <div class="comment-stats">
                            <div class="comment-stat">
                                <i class="fa fa-thumbs-up"></i>
                                <span>${item.likes || 0}</span>
                            </div>
                            <div class="comment-stat">
                                <i class="fa fa-reply"></i>
                                <span>${item.replies || 0}</span>
                            </div>
                        </div>
                        <div class="comment-actions">
                            <button class="comment-action view" data-index="${index}" title="查看文章">
                                <i class="fa fa-eye"></i>
                            </button>
                            <button class="comment-action edit" data-index="${index}" title="编辑评论">
                                <i class="fa fa-edit"></i>
                            </button>
                            <button class="comment-action remove" data-index="${index}" title="删除评论">
                                <i class="fa fa-trash"></i>
                            </button>
                        </div>
                    </div>
                </div>
            </div>
        `;
    }
    
    /**
     * 绑定评论项事件
     */
    function bindCommentEvents() {
        // 点击评论项，查看对应文章
        $('.comment-item').off('click').on('click', function(e) {
            if ($(e.target).closest('.comment-actions').length > 0) {
                return; // 如果点击的是操作按钮，不处理
            }
            
            var index = $(this).data('index');
            var commentItem = commentsList[index];
            
            // 跳转到对应的新闻详情页面
            if (commentItem.newsId) {
                viewNewsDetail(commentItem.newsId);
            } else {
                uexWindow.toast('0', '5', '无法找到对应文章', '2000');
            }
        });
        
        // 查看文章按钮
        $('.comment-action.view').off('click').on('click', function(e) {
            e.stopPropagation();
            var index = $(this).data('index');
            var commentItem = commentsList[index];
            
            if (commentItem.newsId) {
                viewNewsDetail(commentItem.newsId);
            } else {
                uexWindow.toast('0', '5', '无法找到对应文章', '2000');
            }
        });
        
        // 编辑评论按钮
        $('.comment-action.edit').off('click').on('click', function(e) {
            e.stopPropagation();
            var index = $(this).data('index');
            editComment(index);
        });
        
        // 删除评论按钮
        $('.comment-action.remove').off('click').on('click', function(e) {
            e.stopPropagation();
            var index = $(this).data('index');
            removeComment(index);
        });
    }
    
    /**
     * 查看新闻详情
     */
    function viewNewsDetail(newsId) {
        // 从新闻数据中找到对应的新闻
        var newsData = getAllNewsData();
        var targetNews = null;
        
        for (var i = 0; i < newsData.length; i++) {
            if (newsData[i].id == newsId) {
                targetNews = newsData[i];
                break;
            }
        }
        
        if (targetNews) {
            // 保存新闻数据到本地存储
            appcan.locStorage.setVal('currentNews', JSON.stringify(targetNews));
            // 跳转到新闻详情页面
            appcan.openWinWithUrl('news_detail', 'news_detail.html');
        } else {
            uexWindow.toast('0', '5', '文章已不存在', '2000');
        }
    }
    
    /**
     * 编辑评论
     */
    function editComment(index) {
        var commentItem = commentsList[index];
        
        uexWindow.prompt({
            title: "编辑评论",
            message: "修改您的评论内容：",
            defaultText: commentItem.content,
            buttonLabels: ["取消", "保存"]
        }, function(data) {
            if (data.which == 1 && data.inputValue && data.inputValue.trim()) {
                var newContent = data.inputValue.trim();
                
                if (newContent.length > 500) {
                    uexWindow.toast('0', '5', '评论内容不能超过500字', '2000');
                    return;
                }
                
                // 更新评论内容
                commentsList[index].content = newContent;
                commentsList[index].editTime = new Date().toISOString();
                
                // 保存到本地存储
                appcan.locStorage.setVal('userComments', JSON.stringify(commentsList));
                
                // 重新渲染
                renderComments();
                
                uexWindow.toast('0', '5', '评论修改成功', '2000');
            }
        });
    }
    
    /**
     * 删除评论
     */
    function removeComment(index) {
        uexWindow.confirm({
            title: "确认删除",
            message: "确定要删除这条评论吗？",
            buttonLabels: ["取消", "删除"]
        }, function(buttonIndex) {
            if (buttonIndex == 1) {
                // 从列表中删除
                commentsList.splice(index, 1);
                
                // 保存到本地存储
                appcan.locStorage.setVal('userComments', JSON.stringify(commentsList));
                
                // 重新渲染
                renderComments();
                
                // 更新评论数量
                $('#commentCount').text(commentsList.length);
                
                uexWindow.toast('0', '5', '评论已删除', '2000');
            }
        });
    }
    
    /**
     * 获取时间前描述
     */
    function getTimeAgo(date) {
        var now = new Date();
        var diff = now - date;
        var seconds = Math.floor(diff / 1000);
        var minutes = Math.floor(seconds / 60);
        var hours = Math.floor(minutes / 60);
        var days = Math.floor(hours / 24);
        
        if (days > 0) {
            return days + '天前';
        } else if (hours > 0) {
            return hours + '小时前';
        } else if (minutes > 0) {
            return minutes + '分钟前';
        } else {
            return '刚刚';
        }
    }
    
    /**
     * 获取所有新闻数据
     */
    function getAllNewsData() {
        // 这里应该返回完整的新闻数据，可以从新闻详情页面的数据源获取
        return [
            {
                id: 1,
                title: "人工智能在医疗领域的最新突破",
                category: "AI技术",
                content: "最新研究表明，AI技术在医疗诊断方面取得了重大突破...",
                time: "2024-01-15 10:30",
                views: 1234,
                likes: 89,
                comments: 23
            },
            {
                id: 2,
                title: "5G技术推动智慧城市建设新发展",
                category: "5G技术",
                content: "随着5G网络的普及，智慧城市建设迎来了新的发展机遇...",
                time: "2024-01-14 15:20",
                views: 987,
                likes: 67,
                comments: 18
            }
            // 更多新闻数据...
        ];
    }
    
    // 暴露到全局作用域
    window.loadComments = loadComments;
    
})($);

/**
 * 返回首页
 */
function goToHome() {
    appcan.window.close(-1);
} 